import utility

class SongEntity(object):
    def __init__(self,songID,albumID,name,visibility,albumName=None,artistName=None,genre=None,genreDesc=None,playCount=None,recentPlay=None,averageRating=None):
        self.__songID = songID
        self.__albumID = albumID
        self.__name = name
        self.__visibility = visibility
        self.__albumName = albumName
        self.__artistName = artistName
        self.__genre = genre
        self.__genreDesc = genreDesc
        self.__playCount = playCount
        self.__recentPlay = recentPlay
        self.__averageRating = averageRating

    ColumnNames = utility.Enum(
        songID = "SongID",
        albumID = "AlbumID",
        name = "Name",
        visibility = "Visibility",
        albumName = "AlbumName",
        artistName = "ArtistName",
        genre = "Genre",
        genreDesc = "GenreDesc",
        playCount = "PlayCount",
        recentPlay = "RecentPlay",
        averageRating = "AverageRating"
        )
        
    def __get_songID(self):
        return self.__songID
    def __set_songID(self, value):
        self.__songID = value
    SongID = property(fget=__get_songID, fset=__set_songID)


    def __get_albumID(self):
        return self.__albumID
    def __set_albumID(self, value):
        self.__albumID = value
    AlbumID = property(fget=__get_albumID, fset=__set_albumID)


    def __get_name(self):
        return self.__name
    def __set_name(self, value):
        self.__name = value
    Name = property(fget=__get_name, fset=__set_name)


    def __get_visibility(self):
        return self.__visibility
    def __set_visibility(self, value):
        self.__visibility = value
    Visibility = property(fget=__get_visibility, fset=__set_visibility)


    def __get_albumName(self):
        return self.__albumName
    def __set_albumName(self, value):
        self.__albumName = value
    AlbumName = property(fget=__get_albumName, fset=__set_albumName)

    def __get_artistName(self):
        return self.__artistName
    def __set_artistName(self, value):
        self.__artistName = value
    ArtistName = property(fget=__get_artistName, fset=__set_artistName)

    def __get_genre(self):
        return self.__genre
    def __set_genre(self, value):
        self.__genre = value
    Genre = property(fget=__get_genre, fset=__set_genre)

    def __get_genreDesc(self):
        return self.__genreDesc
    def __set_genreDesc(self, value):
        self.__genreDesc = value
    GenreDesc = property(fget=__get_genreDesc, fset=__set_genreDesc)

    def __get_playCount(self):
        return self.__playCount
    def __set_playCount(self, value):
        self.__playCount = value
    PlayCount = property(fget=__get_playCount, fset=__set_playCount)

    def __get_recentPlay(self):
        return self.__recentPlay
    def __set_recentPlay(self, value):
        self.__recentPlay = value
    RecentPlay = property(fget=__get_recentPlay, fset=__set_recentPlay)

    def __get_averageRating(self):
        return self.__averageRating
    def __set_averageRating(self, value):
        self.__averageRating = value
    AverageRating = property(fget=__get_averageRating, fset=__set_averageRating)

